package com.king.modules.system.mapper;

import org.apache.ibatis.annotations.Param;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.king.modules.system.domain.SysUserRoleEntity;

/**
 * 用户与角色关联表 数据层
 * 
 * @author king
 */
public interface SysUserRoleMapper extends BaseMapper<SysUserRoleEntity>{
	/**
	 * 通过用户ID删除用户和角色关联
	 * 
	 * @param userId
	 *            用户ID
	 * @return 结果
	 */
	public int deleteUserRoleByUserId(Long userId);

	/**
	 * 批量删除用户和角色关联
	 * 
	 * @param ids
	 *            需要删除的数据ID
	 * @return 结果
	 */
	public int deleteUserRoleByUserIds(Long[] ids);

	/**
	 * 通过角色ID查询角色使用数量
	 * 
	 * @param roleId
	 *            角色ID
	 * @return 结果
	 */
	public int countUserRoleByRoleId(Long roleId);


	/**
	 * 批量取消授权用户角色
	 * 
	 * @param roleId
	 *            角色ID
	 * @param userIds
	 *            需要删除的用户数据ID
	 * @return 结果
	 */
	public int deleteAuthUsers(@Param("roleId") Long roleId, @Param("userIds") Long[] userIds);

	/**
	 * 删除用户下的角色
	 * @param userId
	 * @param roleIds
	 * @return
	 */
	public int deleteAuthRoles(@Param("userId") Long userId, @Param("roleIds") Long[] roleIds);

	/**
	 * 根据角色删除
	 * @param roleId
	 * @return
	 */
	public int deleteByRoleId(@Param("roleId")Long roleId);
}
